# -*- coding: utf-8 -*-
"""
Created on Sat Aug 26 20:11:57 2023

@author: skunk69
"""

import json

chinese_name = u'儿童抑郁障碍自评量表'
english_name = 'Depression Self-Rating Scale for Children'
abbreviation = 'DSRSC'
category = u'精神病学临床量表'

outline = u"""儿童抑郁障碍自评量表（Depression Self-Rating Scale for Children, DSRSC）是由P. Birrleson于1981年根据Feighner制定的成人抑郁症诊断标准编制而成，主要用于儿童抑郁症状的临床评估，为儿童抑郁症的诊断提供帮助。"""

instruction = u"""每一个条目按照“没有”评、“有时有”和“经常有”进行三级评分。题目之后标注※符号，代表反向计分题目。"""

with open('DSRSC.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

reverse_items = [1,2,4,7,8,9,11,12,13,16]
scales = []
scales_items = []
factors = []
factors_scales = []
rating = [u'没有',u'有时有',u'经常有']
score_rules = list(range(3))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《儿童抑郁障碍自评量表》是一个自评量表。适用于8～13岁的儿童对于自己抑郁症状的自评。"""

reliability = u"""本量表的重测信度、分半信度、因子内部一致性、项目与总分一致性均达到了心理测量学的要求。"""
validity = u"""从内容效度上看，除个别条目外，绝大多数条目在常模组与抑郁症组的得分差异存在显著统计意义。DSRSC与Piers-Harris儿童自我意识量表的焦虑、幸福与满足因子呈负相关，提示DSRSC能够反映儿童的情绪问题。
以临床诊断和CCMD-3诊断标准作为效标，检验DSRSC总分第85百分位（总分≥15分）为划界分时对抑郁障碍儿童的诊断灵敏度为86%，特异度为82%，诊断一致性为0.69。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""DSRSC的主要统计指标是总分。首先将反向条目反向计分，所有条目得分之和即得到总分。量表原作者曾对一组抑郁症儿童和一组在校儿童进行比较，通过ROC分析，选择灵敏度和特异度最合适的点为划界分，得出常模总分第85百分位（总分≥15分）为划界分，即得分大于此分提示有抑郁障碍的可能。"""

applications = u"""苏林雁等建立了儿童抑郁障碍自评量表(DSRSC)的中国城市常模并检验了其信度和效度。
在全国14个城市采样2007例(男995名,女1012名)，年龄7~16岁(平均11.31±2.34岁)，由学生填写DSRSC。间隔半个月量表总分的重测相关r=0.65，间隔3个月量表总分的重测相关r=0.53，p<0.01；半分信度为0.74，Cronbach α系数0.73，项目与总分的一致性在0.26~0.62之间。量表的效度较好，与Achenbach CBCL，儿童自我意识量表的相应分量表相关，抑郁组儿童得分高于常模组，对抑郁障碍诊断的灵敏度为0.86，特异度为0.78。结果证明了儿童抑郁障碍自评量表可用于我国儿童抑郁症状的评估."""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)